home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
U-Utilities
/
(c)u3.d64
/
sd copy_all.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-11
|
3KB
|
123 lines
0 FORI=828 TO894:READA:POKEI,A:NEXTI
10 DATA162,1,32,198,255,32,228,255,160,0,145,167,230,167,165,167,201,0,208
20 DATA 2,230,168,166,144,240,235,76,204,255,234,162,1,32,201,255,160,0,177
30 DATA167,32,210,255,230,167,165,167,201,0,208,2,230,168,165,167,197,169,208
40 DATA233,165,168,197,170,208,227,76,204,255
100 POKE 53281,0:POKE 53280,0
103 POKE 55,0:POKE 56,32
105 PRINT"[147]SD PROGRAM COPY D.A.S.
110 [131]***,SEQ,PRG,USR,REL
120 [129] J[178]0 [164] 4:[135] T$(J):[130]
125 [153]"PUT IN SOURCE DISK & PRESS RETURN"
126 [161] K$:[139] K$[178]""[167] 126
127 [153]"ON "
130 D[178]8
140 [159] 15,D,15,"I0":[134]N$(144),L(144),Y$(144),S(25):CT[178]0:MAX[178]112
150 [141] 1000
160 [139] E [167] [144]
170 [153]"HOLD DOWN 'Y' OR 'N' KEY TO SELECT
175 PRINT"PROGRAMS TO BE COPIED..."
180 OPEN 1,D,5,"$0"
182 FOR L=0 TO 141:GET#1,A$:NEXTL
190 J=17:GOSUB 1020
200 NO$=B$:J=2:GOSUB 1020
210 I$=B$:GET#1,A$:J=2:GOSUB 1020
220 O$=B$:FOR L=162 TO 248:GET#1,A$:NEXT
230 PRINT"[145][145][145]NAME: "NO$;" ID:"I$""
240 FOR P=1 TO 8
250 GET#1,T$,A$,A$ :GOSUB 1000
254 IF T$="" THEN FOR J=1 TO 27:GET#1,A$:NEXT:GOTO340
255 IF T$<CHR$(128) OR T$>CHR$(133)THEN 360
290 J= 15:GOSUB 1020
300 N$=B$
310 GET#1,A$,A$,A$,A$,A$,A$,A$,A$,A$,L$,H$
320 L=ASC(L$+CHR$(0))+256*ASC(H$+CHR$(0)):L(CT)=L
330 Y$(CT)=T$(ASC(T$)-128)
331 PRINTN$TAB(17)Y$(CT):IF E$<>""THENPRINTTAB(20)"***"E$
332 GOSUB 1200:IF Y THEN PRINT"[145] [145]":GOTO 340
333 IF L>MAX THEN PRINT" *** PROGRAM TOO LARGE":GOTO340
334 N$(CT)=N$:CT=CT+1
340 IF P<8 THEN GET#1,A$,A$
350 NEXT P:GET A$:GOTO 240
360 PRINT"* * * * * * * "
365 CLOSE 15:CLOSE1
370 IF CT =0 THEN PRINT"* NO PROGRAMS *":END
380 INPUT"WANT TO NEW THE DESTINATION DISK N[157][157][157]";Z$
385 OPEN 15,D,15
390 IF Z$="N"THEN GOSUB 1060:GOTO440
400 GOSUB 1060
410 PRINT"[145] "
413 INPUT"[145]DISK NAME,ID";ND$,NI$
420 PRINT#15,"N0:"+ND$+","+NI$
430 GOSUB 1000
440 PRINT#15,"I0"
445 PRINT"[145] "
450 GOSUB 1000
460 OPEN1,D,0,"$0:!#$%&"
470 GET#1,A$,A$,A$,A$,A$,A$,A$,A$
480 GET#1,A$:IF A$<>""THEN 480
490 GET #1,A$,A$,A$:X=ASC(A$+CHR$(0)):GET#1,A$:Y=ASC(A$+CHR$(0))
500 PRINT"[145] "
510 PRINT"[145]("X+Y*256"BLOCKS FREE)"
520 CLOSE1:C=0:FOR I= 1 TO 800:NEXTI
530 PRINT"[145] ":C=0:LT=0
540 GOSUB 1120
550 S=0:P=0:N=0:POKE 167,0:POKE 168,32
560 IF S+L(LT)>MAX THEN 595
570 S=S+L(LT):P=P+1:LT=LT+1
580 IF LT=CT THEN 595
590 GOTO 560
595 C=LT-P:X=P
600 PRINT"READING: "N$(C)
610 OPEN 1,8,8,"0:"+N$(C)+","+Y$(C)+",R"
615 GOSUB 1000:IF E <> 0THEN PRINT" ***"E$:GOTO630
620 SYS 828
626 S(N)=(PEEK(168)*256)+PEEK(167)
630 CLOSE1
640 C=C+1:N=N+1:X=X-1:IF X=0 THEN 660
650 GOTO 600
660 POKE 167,0:POKE 168,32:N=0:PRINT:GOSUB 1060
670 PRINT"WRITING: "N$(C-P)
680 OPEN 1,8,8,"0:"+N$(C-P)+","+Y$(C-P)+",W"
690 GOSUB 1000:IF E <> 0 THEN PRINT" ***"E$:GOTO710
695 H=INT(S(N)/256):L=S(N)-(H*256)
696 POKE 169,L:POKE 170,H
700 SYS 858
710 CLOSE1
715 N=N+1:P=P-1:IF P=0 THEN 730
720 GOTO670
730 IF C=CT THEN 750
740 PRINT:GOTO 540
750 GOSUB1230
760 IFAN$="Y"THENRUN
770 POKE 56,160:END
1000 INPUT#15,E,E$,E1,E2:IF E=0 THENE$=""
1010 RETURN
1020 B$=""
1030 FOR L= 0 TO J
1040 GET#1,A$:IF A$<>CHR$(96)THEN IF A$<> CHR$(160) THEN B$=B$+A$
1050 NEXTL:RETURN
1060 PRINT"[145]PUT IN DESTINATION DISK & PRESS RETURN"
1065 GET A$:IF A$=""THEN 1065
1070 GOSUB 1090
1075 IF E THEN PRINT"[145] ":GOTO1060
1080 RETURN
1090 OPEN 2,D,15,"I0":OPEN 1,D,5,"$0":FORI= 1 TO 142:GET#1,A$:NEXT
1100 J=17:GOSUB 1020:NN$=B$:E=0:IF NN$=NO$THEN E=1
1110 CLOSE1:CLOSE2:RETURN
1120 PRINT"[145]PUT IN SOURCE DISK & PRESS RETURN[146]"
1130 GET A$:IF A$=""THEN 1130
1140 GOSUB 1170
1150 IF E THEN PRINT"[145] ":GOTO 1120
1160 RETURN
1170 OPEN 2,D,15,"I0":OPEN 1,D,5,"$0":FOR I=1 TO 142:GET#1,A$:NEXT
1180 J=17:GOSUB 1020:E= 1:IF NO$=B$THEN E=0
1190 CLOSE1:CLOSE2:RETURN
1200 POKE 650,128:GET A$:IF A$=""THEN 1200
1205 POKE 650,0
1210 Y=1:IF A$ ="Y" THEN Y=0
1220 RETURN
1230 INPUT"ANOTHER INPUT DISK";AN$
1240 IF LEFT$(AN$,1)<>"N"THEN AN$="Y"
1250 RETURN